/**
 * 
 */
package com.feib.stms.dao;

import java.util.Date;
import java.util.List;

import com.feib.stms.dao.jdbc.SqlQueryMapProvider;
import com.feib.stms.model.BasePaymentFileContent;
import com.feib.stms.pagination.PaginatedList;

/**
 * @author Jimmy Liu
 *
 */
public interface BasePaymentFileContentDao <T extends BasePaymentFileContent> 
{
	
	public PaginatedList<T> queryForPaginatedListByPaymentFileContent(T entity, Date deliveryDateFrom, Date deliveryDateTo, List<String> fileFormats, List<String> constrainSecuritiesNos, PaginatedList<T> paginatedList);
	
	/**
	 * 
	 * @param entity
	 * @param deliveryDateFrom 交割日期起
	 * @param deliveryDateTo 交割日期迄
	 * @param fileFormats 上傳格式, 因程式是切開查詢，所以用不到。若未來需要整合查詢，則需要每個Detail Union All
	 * @param constrainSecuritiesNos 可查詢的分公司
	 * @param paginatedList
	 * @return
	 */
	public SqlQueryMapProvider getSqlQueryMapProviderByPaymentFileContent(T entity, Date deliveryDateFrom, Date deliveryDateTo, List<String> fileFormats, List<String> constrainSecuritiesNos, PaginatedList<T> paginatedList);

}
